package com.ytjj.qmyx.mall.model;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class SelectExamExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public SelectExamExample() {
        oredCriteria = new ArrayList<>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andProductIdIsNull() {
            addCriterion("product_id is null");
            return (Criteria) this;
        }

        public Criteria andProductIdIsNotNull() {
            addCriterion("product_id is not null");
            return (Criteria) this;
        }

        public Criteria andProductIdEqualTo(Integer value) {
            addCriterion("product_id =", value, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdNotEqualTo(Integer value) {
            addCriterion("product_id <>", value, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdGreaterThan(Integer value) {
            addCriterion("product_id >", value, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("product_id >=", value, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdLessThan(Integer value) {
            addCriterion("product_id <", value, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdLessThanOrEqualTo(Integer value) {
            addCriterion("product_id <=", value, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdIn(List<Integer> values) {
            addCriterion("product_id in", values, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdNotIn(List<Integer> values) {
            addCriterion("product_id not in", values, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdBetween(Integer value1, Integer value2) {
            addCriterion("product_id between", value1, value2, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdNotBetween(Integer value1, Integer value2) {
            addCriterion("product_id not between", value1, value2, "productId");
            return (Criteria) this;
        }

        public Criteria andProductNameIsNull() {
            addCriterion("product_name is null");
            return (Criteria) this;
        }

        public Criteria andProductNameIsNotNull() {
            addCriterion("product_name is not null");
            return (Criteria) this;
        }

        public Criteria andProductNameEqualTo(String value) {
            addCriterion("product_name =", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotEqualTo(String value) {
            addCriterion("product_name <>", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameGreaterThan(String value) {
            addCriterion("product_name >", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameGreaterThanOrEqualTo(String value) {
            addCriterion("product_name >=", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameLessThan(String value) {
            addCriterion("product_name <", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameLessThanOrEqualTo(String value) {
            addCriterion("product_name <=", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameLike(String value) {
            addCriterion("product_name like", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotLike(String value) {
            addCriterion("product_name not like", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameIn(List<String> values) {
            addCriterion("product_name in", values, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotIn(List<String> values) {
            addCriterion("product_name not in", values, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameBetween(String value1, String value2) {
            addCriterion("product_name between", value1, value2, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotBetween(String value1, String value2) {
            addCriterion("product_name not between", value1, value2, "productName");
            return (Criteria) this;
        }

        public Criteria andProductImgIsNull() {
            addCriterion("product_img is null");
            return (Criteria) this;
        }

        public Criteria andProductImgIsNotNull() {
            addCriterion("product_img is not null");
            return (Criteria) this;
        }

        public Criteria andProductImgEqualTo(String value) {
            addCriterion("product_img =", value, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgNotEqualTo(String value) {
            addCriterion("product_img <>", value, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgGreaterThan(String value) {
            addCriterion("product_img >", value, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgGreaterThanOrEqualTo(String value) {
            addCriterion("product_img >=", value, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgLessThan(String value) {
            addCriterion("product_img <", value, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgLessThanOrEqualTo(String value) {
            addCriterion("product_img <=", value, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgLike(String value) {
            addCriterion("product_img like", value, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgNotLike(String value) {
            addCriterion("product_img not like", value, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgIn(List<String> values) {
            addCriterion("product_img in", values, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgNotIn(List<String> values) {
            addCriterion("product_img not in", values, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgBetween(String value1, String value2) {
            addCriterion("product_img between", value1, value2, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgNotBetween(String value1, String value2) {
            addCriterion("product_img not between", value1, value2, "productImg");
            return (Criteria) this;
        }

        public Criteria andCategoryIdIsNull() {
            addCriterion("category_id is null");
            return (Criteria) this;
        }

        public Criteria andCategoryIdIsNotNull() {
            addCriterion("category_id is not null");
            return (Criteria) this;
        }

        public Criteria andCategoryIdEqualTo(Integer value) {
            addCriterion("category_id =", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdNotEqualTo(Integer value) {
            addCriterion("category_id <>", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdGreaterThan(Integer value) {
            addCriterion("category_id >", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("category_id >=", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdLessThan(Integer value) {
            addCriterion("category_id <", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdLessThanOrEqualTo(Integer value) {
            addCriterion("category_id <=", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdIn(List<Integer> values) {
            addCriterion("category_id in", values, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdNotIn(List<Integer> values) {
            addCriterion("category_id not in", values, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdBetween(Integer value1, Integer value2) {
            addCriterion("category_id between", value1, value2, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdNotBetween(Integer value1, Integer value2) {
            addCriterion("category_id not between", value1, value2, "categoryId");
            return (Criteria) this;
        }

        public Criteria andBuyPointIsNull() {
            addCriterion("buy_point is null");
            return (Criteria) this;
        }

        public Criteria andBuyPointIsNotNull() {
            addCriterion("buy_point is not null");
            return (Criteria) this;
        }

        public Criteria andBuyPointEqualTo(String value) {
            addCriterion("buy_point =", value, "buyPoint");
            return (Criteria) this;
        }

        public Criteria andBuyPointNotEqualTo(String value) {
            addCriterion("buy_point <>", value, "buyPoint");
            return (Criteria) this;
        }

        public Criteria andBuyPointGreaterThan(String value) {
            addCriterion("buy_point >", value, "buyPoint");
            return (Criteria) this;
        }

        public Criteria andBuyPointGreaterThanOrEqualTo(String value) {
            addCriterion("buy_point >=", value, "buyPoint");
            return (Criteria) this;
        }

        public Criteria andBuyPointLessThan(String value) {
            addCriterion("buy_point <", value, "buyPoint");
            return (Criteria) this;
        }

        public Criteria andBuyPointLessThanOrEqualTo(String value) {
            addCriterion("buy_point <=", value, "buyPoint");
            return (Criteria) this;
        }

        public Criteria andBuyPointLike(String value) {
            addCriterion("buy_point like", value, "buyPoint");
            return (Criteria) this;
        }

        public Criteria andBuyPointNotLike(String value) {
            addCriterion("buy_point not like", value, "buyPoint");
            return (Criteria) this;
        }

        public Criteria andBuyPointIn(List<String> values) {
            addCriterion("buy_point in", values, "buyPoint");
            return (Criteria) this;
        }

        public Criteria andBuyPointNotIn(List<String> values) {
            addCriterion("buy_point not in", values, "buyPoint");
            return (Criteria) this;
        }

        public Criteria andBuyPointBetween(String value1, String value2) {
            addCriterion("buy_point between", value1, value2, "buyPoint");
            return (Criteria) this;
        }

        public Criteria andBuyPointNotBetween(String value1, String value2) {
            addCriterion("buy_point not between", value1, value2, "buyPoint");
            return (Criteria) this;
        }

        public Criteria andCostPriceIsNull() {
            addCriterion("cost_price is null");
            return (Criteria) this;
        }

        public Criteria andCostPriceIsNotNull() {
            addCriterion("cost_price is not null");
            return (Criteria) this;
        }

        public Criteria andCostPriceEqualTo(BigDecimal value) {
            addCriterion("cost_price =", value, "costPrice");
            return (Criteria) this;
        }

        public Criteria andCostPriceNotEqualTo(BigDecimal value) {
            addCriterion("cost_price <>", value, "costPrice");
            return (Criteria) this;
        }

        public Criteria andCostPriceGreaterThan(BigDecimal value) {
            addCriterion("cost_price >", value, "costPrice");
            return (Criteria) this;
        }

        public Criteria andCostPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("cost_price >=", value, "costPrice");
            return (Criteria) this;
        }

        public Criteria andCostPriceLessThan(BigDecimal value) {
            addCriterion("cost_price <", value, "costPrice");
            return (Criteria) this;
        }

        public Criteria andCostPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("cost_price <=", value, "costPrice");
            return (Criteria) this;
        }

        public Criteria andCostPriceIn(List<BigDecimal> values) {
            addCriterion("cost_price in", values, "costPrice");
            return (Criteria) this;
        }

        public Criteria andCostPriceNotIn(List<BigDecimal> values) {
            addCriterion("cost_price not in", values, "costPrice");
            return (Criteria) this;
        }

        public Criteria andCostPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("cost_price between", value1, value2, "costPrice");
            return (Criteria) this;
        }

        public Criteria andCostPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("cost_price not between", value1, value2, "costPrice");
            return (Criteria) this;
        }

        public Criteria andMarketPriceIsNull() {
            addCriterion("market_price is null");
            return (Criteria) this;
        }

        public Criteria andMarketPriceIsNotNull() {
            addCriterion("market_price is not null");
            return (Criteria) this;
        }

        public Criteria andMarketPriceEqualTo(BigDecimal value) {
            addCriterion("market_price =", value, "marketPrice");
            return (Criteria) this;
        }

        public Criteria andMarketPriceNotEqualTo(BigDecimal value) {
            addCriterion("market_price <>", value, "marketPrice");
            return (Criteria) this;
        }

        public Criteria andMarketPriceGreaterThan(BigDecimal value) {
            addCriterion("market_price >", value, "marketPrice");
            return (Criteria) this;
        }

        public Criteria andMarketPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("market_price >=", value, "marketPrice");
            return (Criteria) this;
        }

        public Criteria andMarketPriceLessThan(BigDecimal value) {
            addCriterion("market_price <", value, "marketPrice");
            return (Criteria) this;
        }

        public Criteria andMarketPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("market_price <=", value, "marketPrice");
            return (Criteria) this;
        }

        public Criteria andMarketPriceIn(List<BigDecimal> values) {
            addCriterion("market_price in", values, "marketPrice");
            return (Criteria) this;
        }

        public Criteria andMarketPriceNotIn(List<BigDecimal> values) {
            addCriterion("market_price not in", values, "marketPrice");
            return (Criteria) this;
        }

        public Criteria andMarketPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("market_price between", value1, value2, "marketPrice");
            return (Criteria) this;
        }

        public Criteria andMarketPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("market_price not between", value1, value2, "marketPrice");
            return (Criteria) this;
        }

        public Criteria andSalePriceIsNull() {
            addCriterion("sale_price is null");
            return (Criteria) this;
        }

        public Criteria andSalePriceIsNotNull() {
            addCriterion("sale_price is not null");
            return (Criteria) this;
        }

        public Criteria andSalePriceEqualTo(BigDecimal value) {
            addCriterion("sale_price =", value, "salePrice");
            return (Criteria) this;
        }

        public Criteria andSalePriceNotEqualTo(BigDecimal value) {
            addCriterion("sale_price <>", value, "salePrice");
            return (Criteria) this;
        }

        public Criteria andSalePriceGreaterThan(BigDecimal value) {
            addCriterion("sale_price >", value, "salePrice");
            return (Criteria) this;
        }

        public Criteria andSalePriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("sale_price >=", value, "salePrice");
            return (Criteria) this;
        }

        public Criteria andSalePriceLessThan(BigDecimal value) {
            addCriterion("sale_price <", value, "salePrice");
            return (Criteria) this;
        }

        public Criteria andSalePriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("sale_price <=", value, "salePrice");
            return (Criteria) this;
        }

        public Criteria andSalePriceIn(List<BigDecimal> values) {
            addCriterion("sale_price in", values, "salePrice");
            return (Criteria) this;
        }

        public Criteria andSalePriceNotIn(List<BigDecimal> values) {
            addCriterion("sale_price not in", values, "salePrice");
            return (Criteria) this;
        }

        public Criteria andSalePriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("sale_price between", value1, value2, "salePrice");
            return (Criteria) this;
        }

        public Criteria andSalePriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("sale_price not between", value1, value2, "salePrice");
            return (Criteria) this;
        }

        public Criteria andOriginalPriceIsNull() {
            addCriterion("original_price is null");
            return (Criteria) this;
        }

        public Criteria andOriginalPriceIsNotNull() {
            addCriterion("original_price is not null");
            return (Criteria) this;
        }

        public Criteria andOriginalPriceEqualTo(BigDecimal value) {
            addCriterion("original_price =", value, "originalPrice");
            return (Criteria) this;
        }

        public Criteria andOriginalPriceNotEqualTo(BigDecimal value) {
            addCriterion("original_price <>", value, "originalPrice");
            return (Criteria) this;
        }

        public Criteria andOriginalPriceGreaterThan(BigDecimal value) {
            addCriterion("original_price >", value, "originalPrice");
            return (Criteria) this;
        }

        public Criteria andOriginalPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("original_price >=", value, "originalPrice");
            return (Criteria) this;
        }

        public Criteria andOriginalPriceLessThan(BigDecimal value) {
            addCriterion("original_price <", value, "originalPrice");
            return (Criteria) this;
        }

        public Criteria andOriginalPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("original_price <=", value, "originalPrice");
            return (Criteria) this;
        }

        public Criteria andOriginalPriceIn(List<BigDecimal> values) {
            addCriterion("original_price in", values, "originalPrice");
            return (Criteria) this;
        }

        public Criteria andOriginalPriceNotIn(List<BigDecimal> values) {
            addCriterion("original_price not in", values, "originalPrice");
            return (Criteria) this;
        }

        public Criteria andOriginalPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("original_price between", value1, value2, "originalPrice");
            return (Criteria) this;
        }

        public Criteria andOriginalPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("original_price not between", value1, value2, "originalPrice");
            return (Criteria) this;
        }

        public Criteria andPriceIsNull() {
            addCriterion("price is null");
            return (Criteria) this;
        }

        public Criteria andPriceIsNotNull() {
            addCriterion("price is not null");
            return (Criteria) this;
        }

        public Criteria andPriceEqualTo(BigDecimal value) {
            addCriterion("price =", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotEqualTo(BigDecimal value) {
            addCriterion("price <>", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceGreaterThan(BigDecimal value) {
            addCriterion("price >", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("price >=", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceLessThan(BigDecimal value) {
            addCriterion("price <", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("price <=", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceIn(List<BigDecimal> values) {
            addCriterion("price in", values, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotIn(List<BigDecimal> values) {
            addCriterion("price not in", values, "price");
            return (Criteria) this;
        }

        public Criteria andPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("price between", value1, value2, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("price not between", value1, value2, "price");
            return (Criteria) this;
        }

        public Criteria andStockIsNull() {
            addCriterion("stock is null");
            return (Criteria) this;
        }

        public Criteria andStockIsNotNull() {
            addCriterion("stock is not null");
            return (Criteria) this;
        }

        public Criteria andStockEqualTo(Integer value) {
            addCriterion("stock =", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockNotEqualTo(Integer value) {
            addCriterion("stock <>", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockGreaterThan(Integer value) {
            addCriterion("stock >", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockGreaterThanOrEqualTo(Integer value) {
            addCriterion("stock >=", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockLessThan(Integer value) {
            addCriterion("stock <", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockLessThanOrEqualTo(Integer value) {
            addCriterion("stock <=", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockIn(List<Integer> values) {
            addCriterion("stock in", values, "stock");
            return (Criteria) this;
        }

        public Criteria andStockNotIn(List<Integer> values) {
            addCriterion("stock not in", values, "stock");
            return (Criteria) this;
        }

        public Criteria andStockBetween(Integer value1, Integer value2) {
            addCriterion("stock between", value1, value2, "stock");
            return (Criteria) this;
        }

        public Criteria andStockNotBetween(Integer value1, Integer value2) {
            addCriterion("stock not between", value1, value2, "stock");
            return (Criteria) this;
        }

        public Criteria andIsExistIsNull() {
            addCriterion("is_exist is null");
            return (Criteria) this;
        }

        public Criteria andIsExistIsNotNull() {
            addCriterion("is_exist is not null");
            return (Criteria) this;
        }

        public Criteria andIsExistEqualTo(Integer value) {
            addCriterion("is_exist =", value, "isExist");
            return (Criteria) this;
        }

        public Criteria andIsExistNotEqualTo(Integer value) {
            addCriterion("is_exist <>", value, "isExist");
            return (Criteria) this;
        }

        public Criteria andIsExistGreaterThan(Integer value) {
            addCriterion("is_exist >", value, "isExist");
            return (Criteria) this;
        }

        public Criteria andIsExistGreaterThanOrEqualTo(Integer value) {
            addCriterion("is_exist >=", value, "isExist");
            return (Criteria) this;
        }

        public Criteria andIsExistLessThan(Integer value) {
            addCriterion("is_exist <", value, "isExist");
            return (Criteria) this;
        }

        public Criteria andIsExistLessThanOrEqualTo(Integer value) {
            addCriterion("is_exist <=", value, "isExist");
            return (Criteria) this;
        }

        public Criteria andIsExistIn(List<Integer> values) {
            addCriterion("is_exist in", values, "isExist");
            return (Criteria) this;
        }

        public Criteria andIsExistNotIn(List<Integer> values) {
            addCriterion("is_exist not in", values, "isExist");
            return (Criteria) this;
        }

        public Criteria andIsExistBetween(Integer value1, Integer value2) {
            addCriterion("is_exist between", value1, value2, "isExist");
            return (Criteria) this;
        }

        public Criteria andIsExistNotBetween(Integer value1, Integer value2) {
            addCriterion("is_exist not between", value1, value2, "isExist");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andSelectorIsNull() {
            addCriterion("selector is null");
            return (Criteria) this;
        }

        public Criteria andSelectorIsNotNull() {
            addCriterion("selector is not null");
            return (Criteria) this;
        }

        public Criteria andSelectorEqualTo(String value) {
            addCriterion("selector =", value, "selector");
            return (Criteria) this;
        }

        public Criteria andSelectorNotEqualTo(String value) {
            addCriterion("selector <>", value, "selector");
            return (Criteria) this;
        }

        public Criteria andSelectorGreaterThan(String value) {
            addCriterion("selector >", value, "selector");
            return (Criteria) this;
        }

        public Criteria andSelectorGreaterThanOrEqualTo(String value) {
            addCriterion("selector >=", value, "selector");
            return (Criteria) this;
        }

        public Criteria andSelectorLessThan(String value) {
            addCriterion("selector <", value, "selector");
            return (Criteria) this;
        }

        public Criteria andSelectorLessThanOrEqualTo(String value) {
            addCriterion("selector <=", value, "selector");
            return (Criteria) this;
        }

        public Criteria andSelectorLike(String value) {
            addCriterion("selector like", value, "selector");
            return (Criteria) this;
        }

        public Criteria andSelectorNotLike(String value) {
            addCriterion("selector not like", value, "selector");
            return (Criteria) this;
        }

        public Criteria andSelectorIn(List<String> values) {
            addCriterion("selector in", values, "selector");
            return (Criteria) this;
        }

        public Criteria andSelectorNotIn(List<String> values) {
            addCriterion("selector not in", values, "selector");
            return (Criteria) this;
        }

        public Criteria andSelectorBetween(String value1, String value2) {
            addCriterion("selector between", value1, value2, "selector");
            return (Criteria) this;
        }

        public Criteria andSelectorNotBetween(String value1, String value2) {
            addCriterion("selector not between", value1, value2, "selector");
            return (Criteria) this;
        }

        public Criteria andSelectorIdIsNull() {
            addCriterion("selector_id is null");
            return (Criteria) this;
        }

        public Criteria andSelectorIdIsNotNull() {
            addCriterion("selector_id is not null");
            return (Criteria) this;
        }

        public Criteria andSelectorIdEqualTo(Integer value) {
            addCriterion("selector_id =", value, "selectorId");
            return (Criteria) this;
        }

        public Criteria andSelectorIdNotEqualTo(Integer value) {
            addCriterion("selector_id <>", value, "selectorId");
            return (Criteria) this;
        }

        public Criteria andSelectorIdGreaterThan(Integer value) {
            addCriterion("selector_id >", value, "selectorId");
            return (Criteria) this;
        }

        public Criteria andSelectorIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("selector_id >=", value, "selectorId");
            return (Criteria) this;
        }

        public Criteria andSelectorIdLessThan(Integer value) {
            addCriterion("selector_id <", value, "selectorId");
            return (Criteria) this;
        }

        public Criteria andSelectorIdLessThanOrEqualTo(Integer value) {
            addCriterion("selector_id <=", value, "selectorId");
            return (Criteria) this;
        }

        public Criteria andSelectorIdIn(List<Integer> values) {
            addCriterion("selector_id in", values, "selectorId");
            return (Criteria) this;
        }

        public Criteria andSelectorIdNotIn(List<Integer> values) {
            addCriterion("selector_id not in", values, "selectorId");
            return (Criteria) this;
        }

        public Criteria andSelectorIdBetween(Integer value1, Integer value2) {
            addCriterion("selector_id between", value1, value2, "selectorId");
            return (Criteria) this;
        }

        public Criteria andSelectorIdNotBetween(Integer value1, Integer value2) {
            addCriterion("selector_id not between", value1, value2, "selectorId");
            return (Criteria) this;
        }

        public Criteria andSelectorOpinionIsNull() {
            addCriterion("selector_opinion is null");
            return (Criteria) this;
        }

        public Criteria andSelectorOpinionIsNotNull() {
            addCriterion("selector_opinion is not null");
            return (Criteria) this;
        }

        public Criteria andSelectorOpinionEqualTo(String value) {
            addCriterion("selector_opinion =", value, "selectorOpinion");
            return (Criteria) this;
        }

        public Criteria andSelectorOpinionNotEqualTo(String value) {
            addCriterion("selector_opinion <>", value, "selectorOpinion");
            return (Criteria) this;
        }

        public Criteria andSelectorOpinionGreaterThan(String value) {
            addCriterion("selector_opinion >", value, "selectorOpinion");
            return (Criteria) this;
        }

        public Criteria andSelectorOpinionGreaterThanOrEqualTo(String value) {
            addCriterion("selector_opinion >=", value, "selectorOpinion");
            return (Criteria) this;
        }

        public Criteria andSelectorOpinionLessThan(String value) {
            addCriterion("selector_opinion <", value, "selectorOpinion");
            return (Criteria) this;
        }

        public Criteria andSelectorOpinionLessThanOrEqualTo(String value) {
            addCriterion("selector_opinion <=", value, "selectorOpinion");
            return (Criteria) this;
        }

        public Criteria andSelectorOpinionLike(String value) {
            addCriterion("selector_opinion like", value, "selectorOpinion");
            return (Criteria) this;
        }

        public Criteria andSelectorOpinionNotLike(String value) {
            addCriterion("selector_opinion not like", value, "selectorOpinion");
            return (Criteria) this;
        }

        public Criteria andSelectorOpinionIn(List<String> values) {
            addCriterion("selector_opinion in", values, "selectorOpinion");
            return (Criteria) this;
        }

        public Criteria andSelectorOpinionNotIn(List<String> values) {
            addCriterion("selector_opinion not in", values, "selectorOpinion");
            return (Criteria) this;
        }

        public Criteria andSelectorOpinionBetween(String value1, String value2) {
            addCriterion("selector_opinion between", value1, value2, "selectorOpinion");
            return (Criteria) this;
        }

        public Criteria andSelectorOpinionNotBetween(String value1, String value2) {
            addCriterion("selector_opinion not between", value1, value2, "selectorOpinion");
            return (Criteria) this;
        }

        public Criteria andStartStatusIsNull() {
            addCriterion("start_status is null");
            return (Criteria) this;
        }

        public Criteria andStartStatusIsNotNull() {
            addCriterion("start_status is not null");
            return (Criteria) this;
        }

        public Criteria andStartStatusEqualTo(Integer value) {
            addCriterion("start_status =", value, "startStatus");
            return (Criteria) this;
        }

        public Criteria andStartStatusNotEqualTo(Integer value) {
            addCriterion("start_status <>", value, "startStatus");
            return (Criteria) this;
        }

        public Criteria andStartStatusGreaterThan(Integer value) {
            addCriterion("start_status >", value, "startStatus");
            return (Criteria) this;
        }

        public Criteria andStartStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("start_status >=", value, "startStatus");
            return (Criteria) this;
        }

        public Criteria andStartStatusLessThan(Integer value) {
            addCriterion("start_status <", value, "startStatus");
            return (Criteria) this;
        }

        public Criteria andStartStatusLessThanOrEqualTo(Integer value) {
            addCriterion("start_status <=", value, "startStatus");
            return (Criteria) this;
        }

        public Criteria andStartStatusIn(List<Integer> values) {
            addCriterion("start_status in", values, "startStatus");
            return (Criteria) this;
        }

        public Criteria andStartStatusNotIn(List<Integer> values) {
            addCriterion("start_status not in", values, "startStatus");
            return (Criteria) this;
        }

        public Criteria andStartStatusBetween(Integer value1, Integer value2) {
            addCriterion("start_status between", value1, value2, "startStatus");
            return (Criteria) this;
        }

        public Criteria andStartStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("start_status not between", value1, value2, "startStatus");
            return (Criteria) this;
        }

        public Criteria andStartOpinionIsNull() {
            addCriterion("start_opinion is null");
            return (Criteria) this;
        }

        public Criteria andStartOpinionIsNotNull() {
            addCriterion("start_opinion is not null");
            return (Criteria) this;
        }

        public Criteria andStartOpinionEqualTo(String value) {
            addCriterion("start_opinion =", value, "startOpinion");
            return (Criteria) this;
        }

        public Criteria andStartOpinionNotEqualTo(String value) {
            addCriterion("start_opinion <>", value, "startOpinion");
            return (Criteria) this;
        }

        public Criteria andStartOpinionGreaterThan(String value) {
            addCriterion("start_opinion >", value, "startOpinion");
            return (Criteria) this;
        }

        public Criteria andStartOpinionGreaterThanOrEqualTo(String value) {
            addCriterion("start_opinion >=", value, "startOpinion");
            return (Criteria) this;
        }

        public Criteria andStartOpinionLessThan(String value) {
            addCriterion("start_opinion <", value, "startOpinion");
            return (Criteria) this;
        }

        public Criteria andStartOpinionLessThanOrEqualTo(String value) {
            addCriterion("start_opinion <=", value, "startOpinion");
            return (Criteria) this;
        }

        public Criteria andStartOpinionLike(String value) {
            addCriterion("start_opinion like", value, "startOpinion");
            return (Criteria) this;
        }

        public Criteria andStartOpinionNotLike(String value) {
            addCriterion("start_opinion not like", value, "startOpinion");
            return (Criteria) this;
        }

        public Criteria andStartOpinionIn(List<String> values) {
            addCriterion("start_opinion in", values, "startOpinion");
            return (Criteria) this;
        }

        public Criteria andStartOpinionNotIn(List<String> values) {
            addCriterion("start_opinion not in", values, "startOpinion");
            return (Criteria) this;
        }

        public Criteria andStartOpinionBetween(String value1, String value2) {
            addCriterion("start_opinion between", value1, value2, "startOpinion");
            return (Criteria) this;
        }

        public Criteria andStartOpinionNotBetween(String value1, String value2) {
            addCriterion("start_opinion not between", value1, value2, "startOpinion");
            return (Criteria) this;
        }

        public Criteria andStartExamIdIsNull() {
            addCriterion("start_exam_id is null");
            return (Criteria) this;
        }

        public Criteria andStartExamIdIsNotNull() {
            addCriterion("start_exam_id is not null");
            return (Criteria) this;
        }

        public Criteria andStartExamIdEqualTo(Integer value) {
            addCriterion("start_exam_id =", value, "startExamId");
            return (Criteria) this;
        }

        public Criteria andStartExamIdNotEqualTo(Integer value) {
            addCriterion("start_exam_id <>", value, "startExamId");
            return (Criteria) this;
        }

        public Criteria andStartExamIdGreaterThan(Integer value) {
            addCriterion("start_exam_id >", value, "startExamId");
            return (Criteria) this;
        }

        public Criteria andStartExamIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("start_exam_id >=", value, "startExamId");
            return (Criteria) this;
        }

        public Criteria andStartExamIdLessThan(Integer value) {
            addCriterion("start_exam_id <", value, "startExamId");
            return (Criteria) this;
        }

        public Criteria andStartExamIdLessThanOrEqualTo(Integer value) {
            addCriterion("start_exam_id <=", value, "startExamId");
            return (Criteria) this;
        }

        public Criteria andStartExamIdIn(List<Integer> values) {
            addCriterion("start_exam_id in", values, "startExamId");
            return (Criteria) this;
        }

        public Criteria andStartExamIdNotIn(List<Integer> values) {
            addCriterion("start_exam_id not in", values, "startExamId");
            return (Criteria) this;
        }

        public Criteria andStartExamIdBetween(Integer value1, Integer value2) {
            addCriterion("start_exam_id between", value1, value2, "startExamId");
            return (Criteria) this;
        }

        public Criteria andStartExamIdNotBetween(Integer value1, Integer value2) {
            addCriterion("start_exam_id not between", value1, value2, "startExamId");
            return (Criteria) this;
        }

        public Criteria andStartExamNameIsNull() {
            addCriterion("start_exam_name is null");
            return (Criteria) this;
        }

        public Criteria andStartExamNameIsNotNull() {
            addCriterion("start_exam_name is not null");
            return (Criteria) this;
        }

        public Criteria andStartExamNameEqualTo(String value) {
            addCriterion("start_exam_name =", value, "startExamName");
            return (Criteria) this;
        }

        public Criteria andStartExamNameNotEqualTo(String value) {
            addCriterion("start_exam_name <>", value, "startExamName");
            return (Criteria) this;
        }

        public Criteria andStartExamNameGreaterThan(String value) {
            addCriterion("start_exam_name >", value, "startExamName");
            return (Criteria) this;
        }

        public Criteria andStartExamNameGreaterThanOrEqualTo(String value) {
            addCriterion("start_exam_name >=", value, "startExamName");
            return (Criteria) this;
        }

        public Criteria andStartExamNameLessThan(String value) {
            addCriterion("start_exam_name <", value, "startExamName");
            return (Criteria) this;
        }

        public Criteria andStartExamNameLessThanOrEqualTo(String value) {
            addCriterion("start_exam_name <=", value, "startExamName");
            return (Criteria) this;
        }

        public Criteria andStartExamNameLike(String value) {
            addCriterion("start_exam_name like", value, "startExamName");
            return (Criteria) this;
        }

        public Criteria andStartExamNameNotLike(String value) {
            addCriterion("start_exam_name not like", value, "startExamName");
            return (Criteria) this;
        }

        public Criteria andStartExamNameIn(List<String> values) {
            addCriterion("start_exam_name in", values, "startExamName");
            return (Criteria) this;
        }

        public Criteria andStartExamNameNotIn(List<String> values) {
            addCriterion("start_exam_name not in", values, "startExamName");
            return (Criteria) this;
        }

        public Criteria andStartExamNameBetween(String value1, String value2) {
            addCriterion("start_exam_name between", value1, value2, "startExamName");
            return (Criteria) this;
        }

        public Criteria andStartExamNameNotBetween(String value1, String value2) {
            addCriterion("start_exam_name not between", value1, value2, "startExamName");
            return (Criteria) this;
        }

        public Criteria andEndStatusIsNull() {
            addCriterion("end_status is null");
            return (Criteria) this;
        }

        public Criteria andEndStatusIsNotNull() {
            addCriterion("end_status is not null");
            return (Criteria) this;
        }

        public Criteria andEndStatusEqualTo(Integer value) {
            addCriterion("end_status =", value, "endStatus");
            return (Criteria) this;
        }

        public Criteria andEndStatusNotEqualTo(Integer value) {
            addCriterion("end_status <>", value, "endStatus");
            return (Criteria) this;
        }

        public Criteria andEndStatusGreaterThan(Integer value) {
            addCriterion("end_status >", value, "endStatus");
            return (Criteria) this;
        }

        public Criteria andEndStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("end_status >=", value, "endStatus");
            return (Criteria) this;
        }

        public Criteria andEndStatusLessThan(Integer value) {
            addCriterion("end_status <", value, "endStatus");
            return (Criteria) this;
        }

        public Criteria andEndStatusLessThanOrEqualTo(Integer value) {
            addCriterion("end_status <=", value, "endStatus");
            return (Criteria) this;
        }

        public Criteria andEndStatusIn(List<Integer> values) {
            addCriterion("end_status in", values, "endStatus");
            return (Criteria) this;
        }

        public Criteria andEndStatusNotIn(List<Integer> values) {
            addCriterion("end_status not in", values, "endStatus");
            return (Criteria) this;
        }

        public Criteria andEndStatusBetween(Integer value1, Integer value2) {
            addCriterion("end_status between", value1, value2, "endStatus");
            return (Criteria) this;
        }

        public Criteria andEndStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("end_status not between", value1, value2, "endStatus");
            return (Criteria) this;
        }

        public Criteria andEndOpinionIsNull() {
            addCriterion("end_opinion is null");
            return (Criteria) this;
        }

        public Criteria andEndOpinionIsNotNull() {
            addCriterion("end_opinion is not null");
            return (Criteria) this;
        }

        public Criteria andEndOpinionEqualTo(String value) {
            addCriterion("end_opinion =", value, "endOpinion");
            return (Criteria) this;
        }

        public Criteria andEndOpinionNotEqualTo(String value) {
            addCriterion("end_opinion <>", value, "endOpinion");
            return (Criteria) this;
        }

        public Criteria andEndOpinionGreaterThan(String value) {
            addCriterion("end_opinion >", value, "endOpinion");
            return (Criteria) this;
        }

        public Criteria andEndOpinionGreaterThanOrEqualTo(String value) {
            addCriterion("end_opinion >=", value, "endOpinion");
            return (Criteria) this;
        }

        public Criteria andEndOpinionLessThan(String value) {
            addCriterion("end_opinion <", value, "endOpinion");
            return (Criteria) this;
        }

        public Criteria andEndOpinionLessThanOrEqualTo(String value) {
            addCriterion("end_opinion <=", value, "endOpinion");
            return (Criteria) this;
        }

        public Criteria andEndOpinionLike(String value) {
            addCriterion("end_opinion like", value, "endOpinion");
            return (Criteria) this;
        }

        public Criteria andEndOpinionNotLike(String value) {
            addCriterion("end_opinion not like", value, "endOpinion");
            return (Criteria) this;
        }

        public Criteria andEndOpinionIn(List<String> values) {
            addCriterion("end_opinion in", values, "endOpinion");
            return (Criteria) this;
        }

        public Criteria andEndOpinionNotIn(List<String> values) {
            addCriterion("end_opinion not in", values, "endOpinion");
            return (Criteria) this;
        }

        public Criteria andEndOpinionBetween(String value1, String value2) {
            addCriterion("end_opinion between", value1, value2, "endOpinion");
            return (Criteria) this;
        }

        public Criteria andEndOpinionNotBetween(String value1, String value2) {
            addCriterion("end_opinion not between", value1, value2, "endOpinion");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}